#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
调试时间计算逻辑，检查当前荷兰时间获取是否正确
"""

import os
import sys
sys.path.append(os.path.dirname(__file__))

from datetime import datetime, timedelta
import pytz
from time_sync import netherlands_time

def main():
    print("=== 时间计算调试 ===")
    
    # 获取当前各种时间
    local_now = datetime.now()
    utc_now = datetime.utcnow()
    
    # 获取荷兰时间
    netherlands_now = netherlands_time.get_netherlands_time()
    
    # 使用pytz直接计算荷兰时间
    amsterdam_tz = pytz.timezone('Europe/Amsterdam')
    utc_dt = pytz.utc.localize(utc_now)
    real_netherlands_dt = utc_dt.astimezone(amsterdam_tz)
    
    print(f"本地系统时间: {local_now.strftime('%Y-%m-%d %H:%M:%S')}")
    print(f"UTC时间: {utc_now.strftime('%Y-%m-%d %H:%M:%S')}")
    print(f"程序计算的荷兰时间: {netherlands_now.strftime('%Y-%m-%d %H:%M:%S')}")
    print(f"pytz计算的荷兰时间: {real_netherlands_dt.strftime('%Y-%m-%d %H:%M:%S')}")
    
    # 计算差异
    diff_seconds = abs((netherlands_now - real_netherlands_dt.replace(tzinfo=None)).total_seconds())
    print(f"\n程序计算与pytz计算的差异: {diff_seconds:.1f} 秒")
    
    # 检查冬令时状态
    is_dst = real_netherlands_dt.dst().total_seconds() > 0
    print(f"\n当前荷兰时间是否夏令时: {is_dst}")
    print(f"当前荷兰时区: {real_netherlands_dt.tzname()}")
    
    # 计算本地到荷兰的时差
    local_to_utc = (local_now - utc_now).total_seconds() / 3600
    print(f"\n本地到UTC时差: {local_to_utc:.1f} 小时")
    
    # 检查配置文件中的偏移量
    import configparser
    config = configparser.ConfigParser()
    config_path = 'config.ini'
    config.read(config_path, encoding='utf-8')
    
    if 'time' in config:
        offset_hours = config.getfloat('time', 'netherlands_offset_hours', fallback=-6.0)
        enable_api = config.getboolean('time', 'enable_api_time_sync', fallback=False)
        print(f"\n配置文件偏移量: {offset_hours} 小时")
        print(f"API时间同步启用: {enable_api}")
    
    # 模拟当前程序写入的时间
    print(f"\n=== 模拟程序写入时间 ===")
    
    # 假设现在是冬令时，荷兰时间比本地时间晚7小时
    expected_offset = 7 if not is_dst else 6
    expected_netherlands = local_now + timedelta(hours=expected_offset)
    
    print(f"期望的荷兰时间（冬令时）: {expected_netherlands.strftime('%Y-%m-%d %H:%M:%S')}")
    print(f"程序实际计算的荷兰时间: {netherlands_now.strftime('%Y-%m-%d %H:%M:%S')}")
    
    # 检查问题
    if diff_seconds > 3600:  # 超过1小时
        print(f"\n⚠️  发现时间计算问题！差异超过1小时")
        print(f"建议检查time_sync.py中的偏移量计算逻辑")
    else:
        print(f"\n✓ 时间计算基本正确")

if __name__ == "__main__":
    main()